#pragma once

class BStrategyMgr
{
private:
	BStrategyMgr() = default;
	~BStrategyMgr();

	std::map<std::wstring, BulletStrategy *> bsmap;

public:
	static BStrategyMgr * getInstance();

	BulletStrategy * get(const std::wstring & sname);
};

class EStrategyMgr
{
private:
	EStrategyMgr() = default;
	~EStrategyMgr();

	std::map<std::wstring, EnemyStrategy *> esmap;

public:
	static EStrategyMgr * getInstance();

	EnemyStrategy * get(const std::wstring & sname);
};

class GameStrategyMgr
{
private:
	GameStrategyMgr() = default;
	~GameStrategyMgr();

	std::map<std::wstring, GameStrategy *> gsmap;

public:
	static GameStrategyMgr * getInstance();

	GameStrategy * get(const std::wstring & gname);
};